package com.boonya.springcloud.utils;

/**
 * @ClassName: SynchronizedAndVolatile
 * @Description: TODO(功能说明)
 * @author: pengjunlin
 * @motto: 学习需要毅力，那就秀毅力
 * @date 2021/4/27 19:42
 */
public class SynchronizedAndVolatile {

    /**
     * Java静态变量
     */
    public static String CONSTANT = "STRING_CONSTANT";

    /**
     * volatile线程共享变量
     */
    public volatile  String volatileStr = "VOLATILE";

    /**
     * 获取同步共享变量
     * @return
     */
    public synchronized String getVolatileStr(){
        return volatileStr;
    }

    /**
     * 获取同步共享变量
     * @return
     */
    public synchronized String getSynchronizedMethodStr(){
        return new String(CONSTANT.getBytes());
    }

    /**
     * 获取同步共享变量
     * @return
     */
    public  String getSynchronizedBlockStr(){
        synchronized(this){
            return new String(CONSTANT.getBytes());
        }
    }
}
